<?php
namespace app\common\model;
use app\common\RootModel;

class ContentModel extends RootModel
{
    protected $pk = 'id';
    protected $table = 'sys_content';

    /**
     * 颜色
     * @var string[]
     */
    public static $color = ['#2F4056', '#FFB800'];

    /**
     * @var array
     */
    public static $stateLabel = ['待审核', '展示中'];

    /**
     * 内容类型
     * @var string[]
     */
    public static $typeLabel = ['文章', '视频', 'APP'];

    /**
     * 内容类型转换
     * @var string[]
     */
    public static $typeEnLabel = ['article', 'video'];

    /**
     * 内容类型
     * @var string[]
     */
    public static $contentType = ['text', 'img', 'sub', 'video'];


    /**
     * 获取封面
     * @param $val
     * @return false|string
     */
    protected function getIconAttr($val)
    {
        return json_decode($val, true);
    }

    /**
     * 设置封面
     * @param $val
     * @return mixed
     */
    protected function setIconAttr($val)
    {
        return json_encode($val);
    }

    /**
     * 获取主图
     * @param $val
     * @return mixed
     */
    protected function getImageAttr($val)
    {
        return json_decode($val, true);
    }

    /**
     * 设置主图
     * @param $val
     * @return false|string
     */
    protected function setImageAttr($val)
    {
        return json_encode($val);
    }

    /**
     * 读取缩略图
     * @param $val
     * @return mixed
     */
    protected function getThumbAttr($val)
    {
        return json_decode($val, true);
    }

    /**
     * 设置缩略图
     * @param $val
     * @return false|string
     */
    protected function setThumbAttr($val)
    {
        return json_encode($val);
    }

    /**
     * 获取文章内容
     * @param $val
     * @return mixed
     */
    protected function getContentAttr($val)
    {
        return json_decode($val, true);
    }

    /**
     * 标点符号转义
     * @param $val
     * @return string
     */
    protected function getTitleAttr($val)
    {
        return htmlspecialchars_decode($val);
    }

    /**
     * 内容转换
     * @param $val
     * @return string
     */
    protected function getContentHtmlAttr ($val)
    {
        $content = '';
        $sourceContent = $this->getContentAttr($val);
        if (!is_array($sourceContent)) {
            return $sourceContent;
        }
        // 数据处理
        foreach ($sourceContent as $row) {
            switch ($row['type']) {
                case 'text':
                    $content .= '<div class="content">' . $row['body'] . '</div>';
                    break;
                case 'img':
                    $content .= '<div class="image"><img src="' . $row['body'] . '" /></div>';
                    break;
                case 'sub':
                    $content .= '<div class="sub">' . $row['body'] . '</div>';
                    break;
                case 'video':
                    $content .= '';
            }
        }
        return $content;
    }
}